Various intelligent call processing systems have been developed to provide customized features to users of telecommunications systems. Certain intelligent communications systems differentiate call treatment based upon the dialed or called number. For example, calls to an 800 subscriber are recognized in an originating switch, which then queries an associated database, called a network control point (NCP) and retrieves information specific to that subscriber. This enables each 800 subscriber to provide different routing or call treatment that best suits that subscriber. For example, one subscriber can use call time of day or day of week routing, another subscriber can use a different routing pattern, and a third subscriber can offer different service depending upon the traffic conditions at various call processing centers.
Other intelligent systems, including "virtual private network" or "software defined network" (SDN) systems, offer customized features suited to the calling party or the calling station. As an example of such systems, outbound calls from an executive of a subscriber may receive different treatment from calls originated by another employee. To provide the appropriate call treatment, information identifying the calling party and the calling station is today routed from an originating switch that receives a call, to a particular NCP which holds the call processing record (CPR) associated with the calling party. This routing requires that the caller's automatic number identification (ANI) information be mapped into a customer identifier and the network address of the NCP with the corresponding CPR. When the number of ANIs is small, this translation may be done using a minimum amount of information, usually the first three to six digits. However, as the number of subscribed ANIs increases studies have shown that, in some instances, the first NCP to receive the query does not have the correct record. In that event, the query must be rerouted to the correct NCP, via the SS7 signaling network which interconnects the NCP's. This undesirably adds to the post dial delay, specifically, to the time between the dialing of a call and the receipt in the originating switch of a response to a query for routing and handling instructions. Also, it increases the likelihood of a routing error, since the number of signaling messages that must be accurately transmitted through the SS7 network is correspondingly increased when an additional data base "dip" is needed; the extra dip also increases the cost of handling the call, since database capacity is a resource.
If the full 10 digits are used to determine the customer identifier and NCP holding the CPR, the translation becomes quite complex, requiring a 10 digit directory with the potential for millions of records. Historically, there have been two ways to solve the large directory problem for telecommunications services: (1) create a large, centralized directory for performing all translations or (2) distribute the ANI translations among all switches that handle incoming calls. Both techniques have significant shortcomings.
If a large, centralized directory is created, all calls coming into a network result in initiation of a query to a centralized directory for translation. The centralized directory makes provisioning simple, since all of the ANI translation information is sent to the same place, eliminating database synchronization problems. The difficulty is that the implementation adds post dial delay for each call, requires that the central directory have a large amount of processing power and places the central directory as a single point of failure for all calls.
If ANI translations are distributed among all incoming switches, translation information for a particular ANI resides in the switch which first receives the call. Since the information is distributed among as many as 100 or more switches, the delay impacts and processing power requirements are minimized, and a failure only affects calls coming into a particular switch. The difficulty with this implementation is in the provisioning of the data among all of the switches. In order to accurately distribute the translation data, a complex ANI-to-Switch translation directory and database synchronization mechanisms are needed.